package day_8_17;

/**
 * 1456. 定长子串中元音的最大数目
 * https://leetcode.cn/problems/maximum-number-of-vowels-in-a-substring-of-given-length/description/
 */
public class Main3 {
    public int maxVowels(String s, int k) {
        char[] ss = s.toCharArray();
        int n = ss.length;
        int ret = 0;
        int len = 0;
        for(int i = 0;i < n;i++) {
            // 定长数组
            // 1、进入窗口
            if(ss[i] == 'a' || ss[i] == 'e' || ss[i] == 'i' || ss[i] == 'o' || ss[i] == 'u') {
                len++;
            }
            // 判断是否符合窗口的长度
            if(i < k - 1) {
                continue;
            }

            // 2、更新答案
            ret = Math.max(ret,len);
            // 3、出窗口，为下一次循环做准备，每次窗口够长后并更新后，将第一个字符出窗口
            char out = ss[i - (k - 1)];
            if(out == 'a' || out == 'e' || out == 'i' || out == 'o' || out == 'u') {
                len--;
            }
        }
        return ret;
    }
}
